perm filename SEARCH.LSP[206,JMC] blob
sn#070520 filedate 1973-11-03 generic text, type T, neo UTF8
(SETQ SEARCHFNS @(
SEARCH
SEARCHLIS
ALLSOL1
ALLSOL
ALLSOLA
ALLSOLB
))
(DE SEARCH (P) (COND ((LOSE P) @LOSE) ((TER P) P) (T (SEARCHLIS (SUCCESSORS P)))))
(DE SEARCHLIS (U) (COND ((NULL U) @LOSE) (T ((LAMBDA (X) (COND ((EQ X @LOSE)
(SEARCHLIS (CDR U))) (T X))) (SEARCH (CAR U))))))
(DE ALLSOL1 (P) (COND ((LOSE P) NIL)
((TER P) (LIST P))
(T (MAPAPP (FUNCTION ALLSOL1) (SUCCESSORS P)))))
(DE ALLSOL (P) (ALLSOLA P NIL))
(DE ALLSOLA (P FOUND) (COND
((LOSE P) FOUND)
((TER P) (CONS P FOUND))
(T (ALLSOLB (SUCCESSORS P) FOUND))))
(DE ALLSOLB (U FOUND) (COND
((NULL U) FOUND)
(T (ALLSOLB (CDR U) (ALLSOLA (CAR U) FOUND)))))